package main

import "fmt"

// 类型 *T 是指向 T 类型值的指针。其零值为 nil。
var p *int

// Go 拥有指针。指针保存了值的内存地址。
func main() {
	i, j := 42, 21021

	// & 操作符会生成一个指向其操作数的指针。
	p := &i							// 指向 i
	// * 操作符表示指针指向的底层值。
	fmt.Println(*p)					// 通过指针读取 i 的值
	*p = 21							// 通过指针设置 i 的值
	fmt.Println(*p)					// 查看 i 的值

	// 与 C 不同，Go 没有指针运算。
	p = &j							// 指向 j
	*p = *p/37						// 通过指针对 j 进行除法运算
	fmt.Println(*p)					// 查看 j 的值
}